//    util/api2.js
const BASE_URL = 'https://manage.jwk2022.cn/openapiv2/'; // 确保BASE_URL是正确的，没有HTML实体

// 定义请求函数
export const myRequest = (options) => {
	// 定义请求头部，包含授权信息，可以根据需要添加其他头部信息
	const header_tmp = {
		"Authorization": "Bearer " + uni.getStorageSync("Access_token") || "",
		// 根据传入的options.contentType来设置Content-Type，如果没有传入则默认为application/json
		"Content-Type": options.contentType || "application/json"
	};

	// 返回一个新的Promise对象
	return new Promise((resolve, reject) => {
		// 发起请求
		uni.request({
			url: BASE_URL + options.url, // 请求的URL
			method: options.method || 'POST', // 请求方法
			data: options.data || {}, // 请求参数
			header: header_tmp, // 请求头部
			success: (res) => {
				// 请求成功
				if (res.statusCode !== 200 && res.statusCode !== 201) {
					// 根据不同的状态码显示不同的错误信息
					switch (res.statusCode) {
						case 404:
							uni.showToast({
								title: '资源未找到，请检查请求的URL是否正确。',
								icon: 'none'
							});
							break;
						case 401:
							uni.showToast({
								title: '未授权，请检查是否已登录或令牌是否有效。',
								icon: 'none'
							});
							break;
						case 403:
							uni.showToast({
								title: '禁止访问，您没有执行此操作的权限。',
								icon: 'none'
							});
							break;
						case 500:
							uni.showToast({
								title: '服务器内部错误，请稍后再试或联系管理员。',
								icon: 'none'
							});
							break;
						default:
							uni.showToast({
								title: '请求失败，状态码：' + res.statusCode,
								icon: 'none'
							});
							break;
					}
					reject(res); // 拒绝Promise，并传递错误信息
					return;
				}
				resolve(res); // 成功则解析Promise
			},
			fail: (err) => {
				// 请求失败
				uni.showToast({
					title: '请求接口失败',
					icon: 'none'
				});
				reject(err); // 失败则拒绝Promise
			}
		});
	});
};